With the proliferation of computer networks, the need has developed for more powerful tools to manage computer networks as they increase in size and complexity. One facility available for managing computer networks is the simple network management protocol (SNMP). The SNMP includes two primary elements: a manager and agents. The SNMP manager is the console through which the network administrator performs network management functions. The SNMP agents are entities that interface to the actual network devices being managed. Hubs, routers or network servers are examples of managed network devices that contain managed objects. The managed objects of each managed network device might be hardware, configuration parameters, performance statistics, and so on, that directly relate to the current operation of the managed network device. The managed objects are arranged in a management information base (MIB) and each managed object is referred to as a MIB object in the MIB. The SNMP allows managers and agents to communicate for the purpose of accessing these MIB objects.
The structure of management information (SMI), a SNMP standard, defines the rules for how MIB objects are structured, described and organized in the MIB. Typically, the MIB is organized in a tree structure composed of branch nodes and leaf nodes. The MIB objects representing the managed objects of the same network device usually reside at the leaf nodes rooting from the same branch node. Each MIB object has an object identifier (OID), which is a sequence of integers in a tree structure that uniquely identifies the MIB object residing at a leaf node. When the manager requests a value of a MIB object from an agent, the OID of the MIB object should be sent by the manager and traversed by the agent.
To perform SNMP access, a variable binding that contains an OID, a type and a corresponding object value, should be built. The variable bindings are the actual data that are transported back and forth inside SNMP messages. Typically, the SNMP uses five basic messages (GET, GET-NEWT, GET-RESPONSE, SET, and TRAP) to communicate between the manager and an agent. For instance, when the manager wants to know the value of a MIB object, such as the system name or the system uptime, the manager will assemble a GET packet that includes the OID for the MIB object. Upon receiving the GET packet, the agent will assemble and send a GET-RESPONSE packet to the manager with either the current value of the MIB object or an error indication as to why the request cannot be processed. Similarly, the manager will assemble a SET packet that includes the OID for each MIB object of interest, thereby requesting a change be made to the value of the MIB object. The agent will then respond with a SET-RESPONSE packet indicating the change has been made or an error indication as to why the change cannot be made. The agent can also assemble and send a TRAP packet that includes OID and value information (bindings) to spontaneously inform the manager of an important event. The manager can use the bindings to correlate and manage the event.
Though the SNMP access is simple due to the small number of command messages (GET, GET-NEWT, GET-RESPONSE, SET, and TRAP), it requires that the user have in-depth knowledge of the MIB, and particularly be familiar with the OID of each MIB object. Also, building the variable binding which includes the OID and the corresponding object value is typically a tedious task when the manager performs the SNMP access. Additionally, the manager needs to translate the response from the agent into a readable service value to facilitate user understanding and decision-making.